home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / slack-docs / base / demon_ppp.dip < prev    next >
Text File  |  1996-05-09  |  6KB  |  191 lines

  1. # demon_ppp.dip: connection script for PPP.
  2. # Copyright 1994-6 John A. Phillips - john@linux.demon.co.uk
  3.  
  4. # **********************************************************************
  5. # * Configuration and modem set-up section *****************************
  6. # **********************************************************************
  7. # Set up the counters for permitted log-in attempts.
  8.   get $free_times 10
  9.   get $paid_times 3
  10.  
  11. # Set the desired serial port name (in /dev) and port speed.
  12.   port modem
  13.   speed 115200
  14.  
  15. # Define the modem initialisation string.  This is the string sent to
  16. # the modem by the dial command each time just prior to (re-)dialling.
  17. #
  18. # For the USR Courier V.Everything (see Demon's Modem.txt)
  19. # ========================================================
  20. # Mode    Set by   Comment
  21. # B0      &F1      ITU-T answer mode (not US Bell answer mode)
  22. # C1      Default  Transmitter enabled
  23. # E1   *  D/SW 4   Command mode echo on
  24. # F1      Default  Full duplex (online local echo off)
  25. # Q0   *  D/SW 3   Display result codes
  26. # V1   *  D/SW 2   Verbal (not numeric) result codes
  27. # &A3     &F1      Display the most detailed connect result codes
  28. # &B1     Default  Serial port data rate stays fixed
  29. # &C1  *  D/SW 6   Modem sends Carrier Detect (CD) on connection
  30. # &D2  *  D/SW 1   DTR enables the modem (when set) or drops the line
  31. # &G2  *  -        UK guard tone (1800 Hz)
  32. # &H1     &F1      Enable hardware (CTS) transmit flow control
  33. # &I0     &F1      Disable software (XON/XOFF) receive flow control
  34. # &K3  *  -        Use V.42bis compression only (no MNP5)
  35. # &N0     Default  Modem negotiates variable link rate
  36. # &R2     &F1      Enable hardware (RTS) receive flow control
  37. # &S1  *  -        Modem sends DSR to CPU on answer
  38. #
  39. # Other additions
  40. # ===============
  41. # X6      -        Report VOICE on the line
  42. # &M5     -        Drop non-ARQ connections
  43. # S39=15  -        Reduce the transmit level from -10 dBm to -15 dBm
  44. # S54.5=1 -        Disable the top V.34 baud rate (Ascend problem?)
  45.   init ATE1Q0V1&C1&D2&G2&K3&S1X6&M5S39=15S54.5=1
  46.  
  47. # Set up the non-default chat keys for the dial command (see "man dip"
  48. # for the defaults, and note that dial returns errlvl 3 on timeout).
  49.   chatkey NO\sDIAL\sTONE 5
  50.   chatkey BUSY 6
  51.   chatkey RINGING\r\n\r\nRINGING\r\n\r\nRINGING 7
  52.   chatkey VOICE 8
  53.  
  54. # Turn on echoing of the control commands, responses etc.
  55.   echo on
  56.  
  57. # Reset the terminal line and modem.  This may be necessary for some
  58. # people but unnecessary for others.  Uncomment the next line only if
  59. # you need to reset the modem here.
  60. # reset
  61.  
  62. # Send a set-up string to the modem.  This string is sent once only.  
  63. # The init string (above) is sent to the modem before each (re-)dial.
  64.   send AT&F1\r
  65.   wait OK 3
  66.   print
  67.   if $errlvl == 0 goto dial
  68.   print Timeout or other error setting up the modem - OK not received
  69.   exit 1
  70.  
  71. # **********************************************************************
  72. # * Dialling section ***************************************************
  73. # **********************************************************************
  74. dial:
  75.   print
  76.  
  77. # Dial Chelmsford National Mercury ROMP with timeout.
  78.   print Dialling the Chelmsford NMR ...
  79.   dial T01245-708666 45
  80.  
  81. # Deal with a specified result from the dial command.
  82.   if $errlvl == 0 goto othererr
  83.   if $errlvl == 1 goto connect
  84.   if $errlvl == 2 goto othererr
  85.   if $errlvl == 3 goto timeout
  86.   if $errlvl == 4 goto nocarrier
  87.   if $errlvl == 5 goto nodialtone
  88.   if $errlvl == 6 goto busy
  89.   if $errlvl == 7 goto ringing
  90.   if $errlvl == 8 goto voice
  91.  
  92. # Deal with an unspecified result from the dial command.
  93.   print
  94.   print Unknown error from the dial command
  95.   exit 1
  96.  
  97. # **********************************************************************
  98. # * Dial error handling section ****************************************
  99. # **********************************************************************
  100. # Use reset only if the response from the dial command fails to properly
  101. # take the modem off-line and into command mode.  The VOICE, RINGING and
  102. # TIMEOUT responses need it (USR Courier).
  103. voice:
  104.   print VOICE
  105.   reset
  106.   goto paid_redial
  107. ringing:
  108.   print RINGING OUT
  109.   reset
  110.   goto free_redial
  111. busy:
  112.   print BUSY
  113.   goto free_redial
  114. nodialtone:
  115.   print NO DIAL TONE
  116.   goto free_redial
  117. nocarrier:
  118.   print NO CARRIER waiting for CONNECT
  119.   goto paid_redial
  120. timeout:
  121.   print TIMEOUT waiting for CONNECT
  122.   reset
  123.   goto paid_redial
  124. othererr:
  125.   print
  126.   print Unexpected OK or ERROR received from the modem
  127.   exit 1
  128.  
  129. # **********************************************************************
  130. # * Re-dialling section ************************************************
  131. # **********************************************************************
  132. free_redial:
  133.   dec $free_times
  134.   if $free_times > 0 goto dial
  135.   print
  136.   print Exceeded the free tries limit
  137.   exit 1
  138. paid_redial:
  139.   dec $paid_times
  140.   if $paid_times > 0 goto dial
  141.   print
  142.   print Exceeded the paid tries limit
  143.   exit 1
  144.  
  145. # **********************************************************************
  146. # * Login section ******************************************************
  147. # **********************************************************************
  148. connect:
  149.   wait ogin: 20
  150.   if $errlvl != 0 goto login_error
  151.   sleep 1
  152.   send <YOUR_HOST_NAME>\r
  153.   wait word: 60
  154.   if $errlvl != 0 goto password_error
  155.   send <YOUR_PASSWORD>\r
  156.   wait ocol: 60
  157.   if $errlvl != 0 goto protocol_error
  158.   send ppp,nolqm,idle=240\r
  159.   wait HELLO 60
  160.   if $errlvl != 0 goto hello_error
  161.  
  162. # Announce the connection.
  163.   print
  164.   print Dial-up and log-on completed
  165.  
  166. # Recommended for the Ascend servers.
  167. # sleep 1
  168. # send \r
  169.  
  170. # Initiate PPP and exit.
  171.   mode PPP
  172.   exit 0
  173.  
  174. # **********************************************************************
  175. # * Login error handling section ***************************************
  176. # **********************************************************************
  177. login_error:
  178.   print Timeout or other error waiting for the login prompt
  179.   goto login_redial
  180. password_error:
  181.   print Timeout or other error waiting for the password prompt
  182.   goto login_redial
  183. protocol_error:
  184.   print Timeout or other error waiting for the protocol prompt
  185.   goto login_redial
  186. hello_error:
  187.   print Timeout or other error waiting for the HELLO prompt
  188. login_redial:
  189.   reset
  190.   goto paid_redial
  191.